Projektimi

Faza e projektimit perben fazen e planifikimit, menyren sesi do te ndertohet nderfaqja grafike ose funksioni logjik i sistemit. Ne kete faze do te planifikojme gjithcka, duke filluar nga skicimi i pamjeve grafike, deri ne paraqitjen e klasave qe do te perdoren per logjiken e sistemit.

Ndertimi i shablloneve grafike

Faqja qe do te ndertojme perbehet nga disa pjese kryesore te paraqitura edhe ne skemen e meposhtme:

Site Structure

Per te ndertuar shabllonet grafike, si nje lloj planifikimi per nderfaqet grafike te sistemit, kemi perdorur nje mjet online shume frytdhenes per skicimin dhe projektimin e skemave te llojeve te ndryshme. Kete mjet mund ta aksesoni ne URL-ne https://www.draw.io/.

Qe te kemi nje nderfaqe grafike sa me miqesore me perdoruesit (ang. user friendly) duhet qe nderfaqja jone te jete:

  • E thjeshte - Perdorimi i seksioneve te faqes te jete i thjeshte. Mos te kete veshtiresi ne kalimin nga faqja ne faqe, apo ne perdorimin e moduleve te vecanta p.sh. moduli i kerkimit te lajmeve.

  • Intuitive - Vizitoret duhet te kuptojne qe me pamjen e pare organizimin e faqes. Duhet te kuptohet pozicionimi i lajmeve dhe njoftimeve. Lehtesisht te aksesohet forma e kontaktit etj.

  • E bukur - Perdorimi i ngjyrave pa kontrast te larte, dhe bashkevepruese me njera tjetren. Kombinimi i ngjyrave ne menyren e duhur. Modulet e faqes te jene te dukshem. Teksti te jete i qarte dhe i lexueshem.

Secila prej faqeve te mesiperme duhet te perbehet nga koka dhe kemba te cilat nga anglishtja i quajme header dhe footer.Header-i dhe footer-i duhet te jene te njejte tek te gjitha faqet, pasi organizimi i faqes behet me i qarte. Midis header-it dhe footer-it gjendet pjesa e ndryshueshme nga faqja ne faqe, pra permbajtja e faqeve. Ajo eshte e vecante per secilen faqe. Ne figuren e meposhtme paraqitet skica e header-it:

Header

Ne krye gjendet logoja e fakultetit. Me poshte vazhdon me nje menu, elementet e se ciles te drejtojne per tek faqet e tjera te rendesishme. Ne te djathte gjendet edhe modulin e kerkimit.

Footer-i i faqes do te jete shume i thjeshte, duke shfaqur disa informacione baze te fakultetit:

Footer

Pas paraqitjes se header-it dhe footer-it ndertojme shabllonet e seciles prej faqeve qe do te jene pjese e projektit tone.

Faqja kryesore, ajo cfare do te shohin per here te pare vizitoret, ne qender do te perbehet nga nje imazh ilustrues qe mund te jete nje ambjent i bukur ne fakultet, disa student qe diplomohen etj. Ne pjesen e djathte do te listojme lajmet e fundit, ndersa ne qender listojme njoftimet e fundit. Ne pjesen e majte listojme departamentet. Listimi i departamenteve sherben pasi ne momentin qe nje vizitor do te klikoje mbi nje departament te caktuar, do te hapet e njejta faqe por ne kete rast do te listohen vetem njoftimet dhe lajmet qe i perkasin departamentit ne fjale.

Skica e faqes kryesore:

home

Faqja RRETH FTI do te aksesohet kur nje vizitor klikon mbi menune me po te njejtin emer. Kjo faqe do te paraqese ne qender te saj informacionet baze rreth fakultetit.

about

Pervec njoftimeve dhe lajmeve te fundit ne faqen kryesore te cilat jane te limituara per shkak te hapesires, jane krijuar dy faqe te dedikuara respektivisht per te listuar njoftimet dhe lajmet. Keto faqe mund t'i aksesojme duke klikuar mbi menu ne elementet NJOFTIME dhe LAJME.

Skica e faqes se njoftimeve:

notices

Skica e faqes se lajmeve:

articles

Ne krahun e majte, lista e departamenteve sherben per te kategorizuar njoftimet ose lajmet. Pra, ne momentin qe nje perdorues eshte ne faqen NJOFTIME dhe klikon mbi njerin prej departamenteve, atehere do t'i hapet e njejta faqe por me njoftimet qe i perkasin vetem departamentit ne fjale.

Faqja e kontaktit hapet duke klikuar mbi menu KONTAKT. Ndertimi i kesaj faqeje do te bazohet mbi skicen e meposhtme:

Contact

Per t'u loguar ne faqe perdoruesi duhet te klikoje mbi elementin HYR te menuse. SKica e faqes se autentikimit shfaqet me poshte:

Login

Pasi nje perdorues autentikohet ne sistem do te ridrejtohet tek profili ose ndryshe paneli i administrimit, i paraqitur me skicen e meposhtme:

Profile

Sa i perket faqeve te tjera dytesore si p.sh. menaxhimi i njoftimeve apo lajmeve, shtimi i nje njoftimi etj. nuk kemi ndertuar skica grafike, por eshte e sigurte qe do te perbehen nga header-i dhe footer-i i mesiperm.

Shabllonet e mesiperme do t'i perdorim si baze per te ndertuar nderfaqen grafike ne HTML dhe CSS. Kur nderfaqet grafike i skicojme fillimisht, eshte me e lehte per t'i ndertuar dhe konvertuar ne kod HTML dhe CSS.

Projektimi i klasave

Projekti yne do te permbaje 4 direktori:

  1. Direktoria libs ne te cilen do te vendosen klasa te caktuara qe do te sherbejne ne formen e librarive, pra qe kryejne nje funksion specifik dhe te cilat jane te riperdorshme ne projekte te ndryshme.

  2. Direktoria models ne te cilen do te vendosen klasat qe kryejne veprime te drejtperdrejta me bazen e te dhenave, si shtimi, fshirja ose modifikimi i nje rekordi etj.

  3. Direktoria admin do te permbaje vetem skedaret te cilet jane te mbrojtur me autentikim, pra te gjithe skedaret qe per aksesim kerkojne me detyrim qe te jesh i loguar ne sistem.

  4. Direktoria assets do te permbaje skedare te ndryshem per stilizimin e faqes ose imazhe te ndryshme.

Ne direktorine rrenje te projektit do te vendosen te gjithe skedaret qe mund te aksesohen nga cfaredolloj vizitori.

Direktoria libs do te perbehet nga 4 klasa te nevojshme per funksione te ndryshme ne sistem si autentikim, lidhja dhe funksione te ndryshme me bazen e te dhenave dhe menaxhimi i sesioneve. Me poshte paraqesim formen e tyre:

libs.png

  • Klasa Database do te jete pergjegjese per veprimet qe do te kryhen me bazen e te dhenave. Sic e shohim dhe nga figura ajo perbehet nga nje variabel anetar i quajtur connection qe mban lidhjen me bazen e te dhenave. Pjese e kesaj klase jane edhe 4 metoda shume te rendesishme insert, update, select, delete te cilat sherbejne respektivisht per shtimin, modifikimin, leximin dhe fshirjen e rekordeve ne nje tabele te caktuar.

  • Klasa AuthUser do te jete pergjegjese per autentikimin e perdoruesve ne sistem, pra per administratoret ose pedagoget. Ajo permban disa metoda kryesore si:

    1. authenticate(email, password) - Merr nje email dhe password ne hyrje dhe te kthen pergjigje nese perdoruesi ekziston.
    2. save(perdorues) - Merr ne hyrje nje array me te dhenat e perdoruesit dhe e ruan ne sesion. Kjo metode do te perdoret ne momentin qe metoda authenticate kthen pergjigje pozitive.

    3. is_logged() - Kontrollon nese perdoruesi eshte i autentikuar apo jo, dmth. ne rast se perdoruesi eshte ruajtur ne sesion atehere ai quhet i autentikuar, perndryshe jo.

    4. logout() - Metoda qe sherben per te bere daljen e perdoruesit nga sistemi, pra kjo metode fshin sesionin e krijuar per perdoruesin e loguar, dhe e kthen ate ne te paloguar.

    5. get() - Metode qe na sherben qe te marrim te dhenat e perdoruesit te loguar, vetem gjate kohes qe ai eshte i loguar.

  • Klasa Session na sherben per te menaxhuar sesionet e faqes, pra ne vend qe te perdorim direkt variablin global $_SESSION, kemi krijuar klasesn Session qe me ane te disa metodave specifike ben nisjesn, vendosjen, marrjen apo dhe fshirjen e sessioneve te ndryshme.

  • Klasa BaseModel do te jete klasa prind per te gjithe modelet qe do te krijohen ne direktorine models. Ajo perbehet vetem nga nje variabel $db e cila eshte nje instance e klases Database. Ky variabel do te trashegohet nga modelet dhe do te mund te perdoret per te kryer funksione specifike si insert, update, select ose delete.

Direktoria models do te perbehet nga 4 klasa (modele) te nevojshme per sistemin tone:

  1. Departament
  2. Perdorues
  3. Njoftim
  4. Artikull

Me ane te ketyre klasave do te mundemi te menaxhojme te gjitha veprimet qe kryhen me bazen e te dhenave. Secila prej klasave trashegon klasen BaseModel, e cila permban variablin $db te tipit Database.

Me poshte paraqesim skemen e ketyre 4 klasave:

models.png

Nese veshtrojme ne imazhin e mesiperm veme re qe te gjitha klasat perbehen nga disa metoda kryesore si:

  1. getId() - Sherben per te marre vleren e fushes id ne databaze te elementit specifik.
  2. save() - Sherben per te ruajtur ne databaze elementin specifik. Ne kete rast mund te jete shtim ose modifikim i rekordit.
  3. delete() - Sherben per te fshire nga databaza elementin specifik nepermjet te cilit u therrit kjo metode. P.sh. $element->delete(), fshin elementin nga databaza.
  4. getById(id) - Sherben per te lexuar nga databaza nje rekord specifik ne baze te id-se qe i kalojme si parameter
  5. getList(condition) - Lexon nga databaza te gjithe rekordet qe plotesojne nje kusht te caktuar te kaluar si parameter.
  • Klasa Departament perfaqeson nje departament te fakultetit dhe permban si variabla anetare nje numer te njejte me fushat ne tabelen departamentet ne databaze. Ashtu sic fushat ne databaze edhe ketu variablat kane te njejtat emra pra: id, emri, pershkrimi.

  • Klasa Perdorues perfaqeson nje perdorues te sistemit, pra pedagog ose administrator dhe permban si variabla anetare nje numer te njejte me fushat ne tabelen perdoruesit ne databaze. Ashtu sic fushat ne databaze edhe ketu variablat kane te njejtat emra pra: id, emri, email, password, tipi, id_departament. Pervec metodave te permenduara me siper te cilat gjenden ne cdo model, ne kete model kemi edhe disa metoda te tjera:

    1. setId() - Sherben per te vendosur id-ne e perdoruesit specifik
    2. toArray() - Konverton perdoruesin nga nje objekt i tipit Perdorues ne nje array. Pra, nese fushat therriten ne formen $perdorues->emri, pas konvertimit i aksesojme ne formen $perdorues['emri']
    3. isAdmin() - Kontrollon nese nje perdorues eshte administrator apo jo. Kthen true ne rast se po. Kontrolli behet duke kontrolluar fushen tipi, ne rast se ajo ka vleren 0 atehere perdoruesi eshte administrator perndryshe jo.
  • Klasa Njoftim perfaqeson nje njoftim te shkruar nga nje pedagog dhe permban si variabla anetare nje numer te njejte me fushat ne tabelen njoftimet ne databaze. Ashtu sic fushat ne databaze edhe ketu variablat kane te njejtat emra pra: id, titulli, pershkrimi, data, id_departament.

  • Klasa Artikull perfaqeson nje lajm te shkruar nga nje pedagog dhe permban si variabla anetare nje numer te njejte me fushat ne tabelen artikujt ne databaze. Ashtu sic fushat ne databaze edhe ketu variablat kane te njejtat emra pra: id, titulli, pershkrimi, data, id_departament.

results matching ""

    No results matching ""